Contoh F Sharp (bahasa pengaturcaraan)

Berikut ialah beberapa contoh ringkas:

// Komen untuk atur cara indahnya dunia.printfn "Indahnya dunia!"

Kelas Orang yang pembinanya menerima nama dan umur serta dua sifat.

/// This is a documentation comment for a type definition.type Orang(nama : string, umur : int) =    member x.Nama = nama    member x.Umur = umur

Contoh ringkas yang selalu digunakan untuk menunjukkan sintaks bahasa-bahasa kefungsian iaitu fungsi faktorial bagi integer 32-bit bukan negatif, di dalam F#:

/// Ini komen pendokumenan bagi sebuah fungsi.let rec factorial n =    match n with    | 0 -> 1    | _ -> n * factorial (n - 1)

Contoh lelaran (iteration):

/// Lelaran menggunakan gelung 'for'let printList lst =     for x in lst do         printfn "%d" x/// Lelaran mengunakan fungsi tertib lebih tinggilet printList2 lst =     List.iter (printfn "%d") lst/// Lelaran menggunakan fungsi rekursif dan pemadanan coraklet rec printList3 lst =    match lst with     | [] -> ()    | h :: t ->         printfn "%d" h        printList t

Contoh Fibonacci:

/// Formula Nombor Fibonaccilet rec fib n =    match n with    | 0 | 1 -> n    | _ -> fib (n - 1) + fib (n - 2)/// Cara lain - jujukan takterhingga malas bagi nombor Fibonaccilet fibSeq = Seq.unfold (fun (a,b) -> Some(a+b, (b, a+b))) (1,1)// Papar nombor Fibonacci genap[1 .. 10]|> List.map     fib|> List.filter  (fun n -> (n % 2) = 0)|> printList// Benda yang sama, menggunakan sebutan senarai[ for i in 1..10 do    let r = fib i    if r % 2 = 0 then yield r ]|> printList

Atur cara Windows Forms mudah:

// Buka pustaka Windows Forms open System.Windows.Forms// Cipta sebuah tetingkap dan tetapkan beberapa sifatlet form = new Form(Visible=true, TopMost=true, Text="Welcome to F#")// Cipta sebuah label untuk memaparkan teks di dalam formlet label =    let x = 3 + (4 * 5)    new Label(Text = sprintf "x = %d" x)// Letakkan label di atas formform.Controls.Add(label)// Akhir sekali, jalan form tadi[<System.STAThread>]Application.Run(form)

Contoh pengaturcaraan selari taksegerak (Tugas CPU dan I/O selari):

/// A very naive prime number detector let isPrime (n:int) =   let bound = int (sqrt (float n))   seq {2 .. bound} |> Seq.forall (fun x -> n % x <> 0) // We are using async workflows let primeAsync n =    async { return (n, isPrime n) }/// Pulangkan nombor perdana antar m dan n menggunakan lebih daripada satu threadlet primes m n =    seq {m .. n}        |> Seq.map primeAsync        |> Async.Parallel        |> Async.RunSynchronously        |> Array.filter snd        |> Array.map fst// Jalankan ujian primes 1000000 1002000    |> Array.iter (printfn "%d")